<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/tool.js"></script>
    <script src="../js/ajax.js"></script>
    <script src="../js/a.js"></script>
</head>

<body>

</body>
<script>
    // 历史上，JavaScript 一直没有模块（module）体系，无法将一个大程序拆分成互相依赖的小文件，再用简单的方法拼装起来


    // 在 ES6 之前，社区制定了一些模块加载方案，最主要的有 CommonJS 和 AMD 两种。前者用于服务器，后者用于浏览器。ES6 在语言标准的层面上，实现了模块功能，而且实现得相当简单，完全可以取代 CommonJS 和 AMD 规范，成为浏览器和服务器通用的模块解决方案。

    // 模块化发展史 => 闭包 =>   CommonJS(NodeJS 服务器) 和  AMD,CMD(浏览器)  => ES6模块化规范 (取代 CommonJS   AMD,CMD)

    // NodeJS(服务器) => CommonJS(主流)  / ES6模块

    // 如果全局变量使用过多 => 造成全局变量污染
    // console.log(debounce);
    // console.log(throttle);
    // console.log(currying);
    // console.log(ajax);
    // console.log(ajaxPromise);






    /* var a = 10;
    var b = 20;
    function addA() {
        a++
    }

    function reduceA() {
        a--;
    }

    function addB() {
        b++
    }

    function reduceB() {
        b--;
    }*/

    console.log(moduleA);


    console.log(moduleA.a);

    moduleA.addA();
    moduleA.addA();
    moduleA.addA();
    moduleA.addA();
    moduleA.addA();

    console.log(moduleA.a);





</script>

</html>